package com.atguigu.ai.functioncall.config;

import com.atguigu.ai.functioncall.service.CalculatorService;
import com.atguigu.ai.functioncall.service.TimeService;
import com.atguigu.ai.functioncall.service.WeatherService;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class FunctionCallConfig {

    /**
     * 配置ChatClient，注册所有可用的函数
     */
    @Bean
    public ChatClient chatClient(ChatClient.Builder chatClientBuilder,
                                WeatherService weatherService,
                                CalculatorService calculatorService,
                                TimeService timeService) {
        return chatClientBuilder
                .defaultSystem("""
                        你是一个智能助手，具备以下能力：
                        1. 天气查询：可以查询任何城市的天气情况
                        2. 数学计算：可以进行各种数学运算
                        3. 时间查询：可以获取不同时区的时间信息
                        
                        当用户询问相关问题时，请主动调用相应的函数来获取准确信息。
                        请用友好、专业的语调回答用户问题。
                        """)
                .defaultFunctions("weatherService", "calculatorService", "timeService")
                .build();
    }
} 